<!DOCTYPE html>
<html lang="zn">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>强制类型转换</title>
    <script>
        /*
            强制类型转化
                -指将一个数据类型强制转换为其他的数据类型
                -类型转换主要指，将其他的数据类型转换为 String Number Boolean
        */

        /*
            将其他的数据类型转换为String
                方式一:
                    -调用被转换数据类型的toString()方法
                    -该方法不会影响到原变量，它会将转换的结果返回
                    -但是注意:null和undefined这两个值没有toString()方法，如果调用他们的方法，会报错

                方法二:
                    -调用String()函数，并将被转换的数据作为参数传递给函数
                    -使用String()函数做强制类型转换时，
                        对于Number和Boolean实际上就是调用的toString()方法
                        但是对于null和undefined,就不会调用toString()方法
                            它会将null直接转换为"null"
                            将undefined 直接转换为 "undefined"
        */
        var a = 123;

        // 调用a的toString()方法
        // 调用xxx的yyy()方法，就是xxx.yyy()
        a = a.toString();

        a = true;
        a = a.toString();

        a = null;
        // a = a.toString(); //报错

        a = undefined;
        // a = a.toString(); //报错

        a = 123;
        // 调用String()函数，来将a转换为字符串
        a = String(a);

        a = null;
        a = String(a);

        a = undefined;
        a = String(a);
        
        console.log(typeof a);
        console.log(a);
    </script>
</head>
<body>
    
</body>
</html>